package qqsdk

type IResp interface {
	GetTimestamp() int64
	SetErrNo(errno int, errmsg string)
}

type BaseResp struct {
	Errno     int    `json:"errno"`
	Errmsg    string `json:"errmsg"`
	Uid       string `json:"uid,omitempty"`
	Timestamp int64  `json:"timestamp,omitempty"`
	Sign      string `json:"sign,omitempty"`
}

func (p *BaseResp) GetTimestamp() int64 {
	return p.Timestamp
}
func (p *BaseResp) SetErrNo(errno int, errmsg string) {
	p.Errno = errno
	p.Errmsg = errmsg
}

type TimeStampResp struct {
	BaseResp
	Data int64 `json:"data,omitempty"`
}
type SoftInfoData struct {
	AppName             string `json:"appName"`
	AppStatus           string `json:"appStatus"`
	AppMode             string `json:"appMode"`
	AppNotice           string `json:"appNotice"`
	AppDownURL          string `json:"appDownUrl"`
	NoticeJSON          string `json:"noticeJson"`
	Version             string `json:"version"`
	VersionNotice       string `json:"versionNotice"`
	VersionData         string `json:"versionData"`
	VersionHtmlNotice   string `json:"versionHtmlNotice"`
	VersionIsMustUpdate int    `json:"versionIsMustUpdate"`
	VersionUp           string `json:"versionUp"`
	VersionUpNotice     string `json:"versionUpNotice"`
	VersionUpData       string `json:"versionUpData"`
	VersionUpHtmlNotice string `json:"versionUpHtmlNotice"`
	LoginRules          string `json:"loginRules"`
	GiftRules           string `json:"giftRules"`
}
type SoftInfoResp struct {
	BaseResp
	Data SoftInfoData `json:"data,omitempty"`
}

type UserRegisterResp struct {
	BaseResp
	Data int64 `json:"data,omitempty"`
}
type UserLoginData struct {
	Client             string  `json:"client"`
	EndTime            string  `json:"endtime"`
	EndTimeTimestamp   int64   `json:"endtimeTimestamp"`
	StartTime          string  `json:"starttime"`
	StartTimeTimestamp int64   `json:"starttimeTimestamp"`
	RealCDays          float64 `json:"realCdays"`
	CountCDays         int     `json:"countCdays"`
	CountPoints        int     `json:"countPoints"`
	Username           string  `json:"username"`
	IP                 string  `json:"ip"`
	Mac                string  `json:"mac"`
	KeyExtAttr         string  `json:"keyExtAttr"`
	Tag                string  `json:"tag"`
	BindInfo           string  `json:"bindInfo"`
}

type UserLoginResp struct {
	BaseResp
	Data UserLoginData `json:"data,omitempty"`
}

type UserLogoutResp struct {
	BaseResp
}
type GetVarResp struct {
	BaseResp
	Data string `json:"data,omitempty"`
}
type RunJsResp struct {
	BaseResp
	Data interface{} `json:"data,omitempty"`
}
type UserUnBindResp struct {
	BaseResp
	Data interface{} `json:"data,omitempty"`
}

type PointData struct {
	CountPoints int `json:"countPoints"`
}

type UserCutPointResp struct {
	BaseResp
	Data PointData `json:"data,omitempty"`
}
type GetUserExtendsResp struct {
	BaseResp
	Data interface{} `json:"data,omitempty"`
}

type SetUserExtendsResp struct {
	BaseResp
}
type UserRechargeData struct {
	GiftCdays   int     `json:"giftCdays"`
	GiftPoints  int     `json:"giftPoints"`
	AddCdays    int     `json:"addCdays"`
	AddPoints   int     `json:"addPoints"`
	KeyCdays    int     `json:"keyCdays"`
	KeyPoints   int     `json:"keyPoints"`
	CountCdays  float64 `json:"countCdays"`
	CountPoints int     `json:"countPoints"`
}
type UserRechargeResp struct {
	BaseResp
	Data UserRechargeData `json:"data,omitempty"`
}

type OnlineList struct {
	Mac        string `json:"mac"`
	Addtime    int64  `json:"addtime"`
	ID         int    `json:"id"`
	UserID     int    `json:"user_id"`
	Clienttime int64  `json:"clienttime"`
	IP         string `json:"ip"`
	Client     string `json:"client"`
}

type UserHeartData struct {
	Endtime                string       `json:"endtime"`
	EndtimeTimestamp       int64        `json:"endtimeTimestamp"`
	Starttime              string       `json:"starttime"`
	StarttimeTimestamp     int64        `json:"starttimeTimestamp"`
	RealCdays              float64      `json:"realCdays"`
	CountCdays             int          `json:"countCdays"`
	CountPoints            int          `json:"countPoints"`
	Username               string       `json:"username"`
	IP                     string       `json:"ip"`
	Mac                    string       `json:"mac"`
	OnlineAllList          []OnlineList `json:"onlineAllList"`
	StandAloneAllList      []OnlineList `json:"standAloneAllList"`
	StandAloneCurrentLogin int          `json:"standAloneCurrentLogin"`
	StandAloneAllowCurrent int          `json:"standAloneAllowCurrentLogin"`
	OnlineCurrentLogin     int          `json:"onlineCurrentLogin"`
	OnlineAllowCurrent     int          `json:"onlineAllowCurrentLogin"`
	KeyExtAttr             string       `json:"keyExtAttr"`
	Tag                    string       `json:"tag"`
	BindInfo               string       `json:"bindInfo"`
}

type UserHeart struct {
	BaseResp
	Data UserHeartData
}
